\hypertarget{class_game_engine}{
\section{GameEngine Class Reference}
\label{class_game_engine}\index{GameEngine@{GameEngine}}
}


Classe dérivable utilisé pour représenter les actions orchestré par un jeu vidéo à chaque rafraichissement de l'image.  




{\ttfamily \#include $<$gameEngine.h$>$}

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_game_engine_a64c430f74d72e2745646fdbffbd97930}{GameEngine} ()
\item 
virtual void \hyperlink{class_game_engine_a90491b88aa2e46cdbdeb55c2e9437b07}{ColorPicking} ()
\item 
virtual void \hyperlink{class_game_engine_afbc98615f913da8e6e945bd87c31d249}{InitSDL} (int width, int height)
\begin{DoxyCompactList}\small\item\em Initialise la fenêtre de jeu, crée à l'aide de la librairie SDL. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{class_game_engine_afba36c63e9ba69f0ddafd409bb30f236}{InitGL} ()
\begin{DoxyCompactList}\small\item\em Initialise le contexte/variables/constantes nécéssaire à l'affichage d'un rendu OpenGL. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{class_game_engine_a5bc791a8c6bf38a896cd3c355ec1a401}{InitOrthoProjection} (float aLowerBoundx, float aUpperBoundx, float aLowerBoundy, float aUpperBoundy)
\begin{DoxyCompactList}\small\item\em Initialise la matrice de projection de manière \char`\"{}ortho\char`\"{}. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{class_game_engine_a68b7a1b6913eae64be4fa468cc0aeb7a}{InitFrustsumProjection} ()
\begin{DoxyCompactList}\small\item\em Initialise la matrice de projection en perspective. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{class_game_engine_a4c924ed84e1cfeab185380baaf1fef36}{EventManagement} ()
\begin{DoxyCompactList}\small\item\em Inspecte tous les délégués des éléments stocker dans le conteneur element afin de lancer ou non leurs slots correspondant. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{class_game_engine_ae4d697f8b2e229ab73edff282c4b1198}{InputEventManagement} ()
\item 
virtual void \hyperlink{class_game_engine_aaafb3ae895d8dc1ddc95fafe3719db87}{DisplayFrame} ()
\begin{DoxyCompactList}\small\item\em Exécute la méthode Display de tous les éléments du conteneur std::vector$<$Displayable $\ast$$>$ elements. \item\end{DoxyCompactList}\item 
virtual void \hyperlink{class_game_engine_a95562ef55e6fa03ee4eb742b95c6d870}{GameLoop} ()
\begin{DoxyCompactList}\small\item\em Exécute toutes les méthodes nécéssaire à un tour de boucle dans un jeu. \item\end{DoxyCompactList}\item 
void \hyperlink{class_game_engine_a091bac3002afe0189e606ccb0295a078}{AddElement} (\hyperlink{class_displayable}{Displayable} $\ast$)
\item 
void \hyperlink{class_game_engine_a9241574259376b3e5d27ed68bdf2d6e4}{AddElements} (std::vector$<$ \hyperlink{class_displayable}{Displayable} $\ast$ $>$ \hyperlink{class_game_engine_af5253da3697460963d047996bd2cd7c1}{elements})
\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
std::vector$<$ \hyperlink{class_abstract_delegate}{AbstractDelegate} $\ast$ $>$ \hyperlink{class_game_engine_a032695d38f9a6634619f06cb790d7a3f}{delegates}
\item 
std::vector$<$ \hyperlink{class_collision}{Collision} $\ast$ $>$ \hyperlink{class_game_engine_a7fba9b3842cdcbd5be04244f29e7b024}{collisions}
\item 
int \hyperlink{class_game_engine_a9058cb5e9eaeb3ed9ae68dd69d46eac0}{frameCount}
\item 
int \hyperlink{class_game_engine_a5668d61bd6ba126944fef59982c8d597}{currentTime}
\item 
int \hyperlink{class_game_engine_a080ea426e418df4a88202a3690962b52}{lastTime}
\item 
int \hyperlink{class_game_engine_ab4d971b71c71276764d0abf8cd1d0057}{frameRate}
\item 
float \hyperlink{class_game_engine_af1ec035087a590d689965249e8b02982}{lowerBoundGLx}
\item 
float \hyperlink{class_game_engine_ace9e14db48c1fa236bdaa9c456dfa732}{upperBoundGLx}
\item 
float \hyperlink{class_game_engine_ad8e113d07fdfba699038d42908adc43e}{lowerBoundGLy}
\item 
float \hyperlink{class_game_engine_a0f616a1a00c82a91f4f0fa60240de825}{upperBoundGLy}
\item 
int \hyperlink{class_game_engine_a0f2b958058bbc9dcbfbe7bc19d8201b5}{windowWidth}
\item 
int \hyperlink{class_game_engine_a289c62b96098e493218c18b639aaff2c}{windowHeight}
\item 
int \hyperlink{class_game_engine_a60431c445134f75d704ef4003b6c7671}{dimension}
\item 
\hyperlink{class_point_of_view}{PointOfView} \hyperlink{class_game_engine_a786d9d8af1f12e73d65223e1ea0197a6}{pow}
\item 
SDL\_\-Event \hyperlink{class_game_engine_aed94b14c0f594f84194afb23924416f2}{event}
\item 
std::vector$<$ \hyperlink{class_displayable}{Displayable} $\ast$ $>$ \hyperlink{class_game_engine_af5253da3697460963d047996bd2cd7c1}{elements}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Classe dérivable utilisé pour représenter les actions orchestré par un jeu vidéo à chaque rafraichissement de l'image. 

\subsection{Constructor \& Destructor Documentation}
\hypertarget{class_game_engine_a64c430f74d72e2745646fdbffbd97930}{
\index{GameEngine@{GameEngine}!GameEngine@{GameEngine}}
\index{GameEngine@{GameEngine}!GameEngine@{GameEngine}}
\subsubsection[{GameEngine}]{\setlength{\rightskip}{0pt plus 5cm}GameEngine::GameEngine (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}
\label{class_game_engine_a64c430f74d72e2745646fdbffbd97930}


\subsection{Member Function Documentation}
\hypertarget{class_game_engine_a091bac3002afe0189e606ccb0295a078}{
\index{GameEngine@{GameEngine}!AddElement@{AddElement}}
\index{AddElement@{AddElement}!GameEngine@{GameEngine}}
\subsubsection[{AddElement}]{\setlength{\rightskip}{0pt plus 5cm}void GameEngine::AddElement (
\begin{DoxyParamCaption}
\item[{{\bf Displayable} $\ast$}]{aObject}
\end{DoxyParamCaption}
)}}
\label{class_game_engine_a091bac3002afe0189e606ccb0295a078}
\hypertarget{class_game_engine_a9241574259376b3e5d27ed68bdf2d6e4}{
\index{GameEngine@{GameEngine}!AddElements@{AddElements}}
\index{AddElements@{AddElements}!GameEngine@{GameEngine}}
\subsubsection[{AddElements}]{\setlength{\rightskip}{0pt plus 5cm}void GameEngine::AddElements (
\begin{DoxyParamCaption}
\item[{std::vector$<$ {\bf Displayable} $\ast$ $>$}]{elements}
\end{DoxyParamCaption}
)}}
\label{class_game_engine_a9241574259376b3e5d27ed68bdf2d6e4}
\hypertarget{class_game_engine_a90491b88aa2e46cdbdeb55c2e9437b07}{
\index{GameEngine@{GameEngine}!ColorPicking@{ColorPicking}}
\index{ColorPicking@{ColorPicking}!GameEngine@{GameEngine}}
\subsubsection[{ColorPicking}]{\setlength{\rightskip}{0pt plus 5cm}void GameEngine::ColorPicking (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_game_engine_a90491b88aa2e46cdbdeb55c2e9437b07}
\hypertarget{class_game_engine_aaafb3ae895d8dc1ddc95fafe3719db87}{
\index{GameEngine@{GameEngine}!DisplayFrame@{DisplayFrame}}
\index{DisplayFrame@{DisplayFrame}!GameEngine@{GameEngine}}
\subsubsection[{DisplayFrame}]{\setlength{\rightskip}{0pt plus 5cm}void GameEngine::DisplayFrame (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_game_engine_aaafb3ae895d8dc1ddc95fafe3719db87}


Exécute la méthode Display de tous les éléments du conteneur std::vector$<$Displayable $\ast$$>$ elements. 

\hypertarget{class_game_engine_a4c924ed84e1cfeab185380baaf1fef36}{
\index{GameEngine@{GameEngine}!EventManagement@{EventManagement}}
\index{EventManagement@{EventManagement}!GameEngine@{GameEngine}}
\subsubsection[{EventManagement}]{\setlength{\rightskip}{0pt plus 5cm}void GameEngine::EventManagement (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_game_engine_a4c924ed84e1cfeab185380baaf1fef36}


Inspecte tous les délégués des éléments stocker dans le conteneur element afin de lancer ou non leurs slots correspondant. 

\hypertarget{class_game_engine_a95562ef55e6fa03ee4eb742b95c6d870}{
\index{GameEngine@{GameEngine}!GameLoop@{GameLoop}}
\index{GameLoop@{GameLoop}!GameEngine@{GameEngine}}
\subsubsection[{GameLoop}]{\setlength{\rightskip}{0pt plus 5cm}void GameEngine::GameLoop (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_game_engine_a95562ef55e6fa03ee4eb742b95c6d870}


Exécute toutes les méthodes nécéssaire à un tour de boucle dans un jeu. 

\hypertarget{class_game_engine_a68b7a1b6913eae64be4fa468cc0aeb7a}{
\index{GameEngine@{GameEngine}!InitFrustsumProjection@{InitFrustsumProjection}}
\index{InitFrustsumProjection@{InitFrustsumProjection}!GameEngine@{GameEngine}}
\subsubsection[{InitFrustsumProjection}]{\setlength{\rightskip}{0pt plus 5cm}GameEngine::InitFrustsumProjection (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_game_engine_a68b7a1b6913eae64be4fa468cc0aeb7a}


Initialise la matrice de projection en perspective. 

\hypertarget{class_game_engine_afba36c63e9ba69f0ddafd409bb30f236}{
\index{GameEngine@{GameEngine}!InitGL@{InitGL}}
\index{InitGL@{InitGL}!GameEngine@{GameEngine}}
\subsubsection[{InitGL}]{\setlength{\rightskip}{0pt plus 5cm}void GameEngine::InitGL (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_game_engine_afba36c63e9ba69f0ddafd409bb30f236}


Initialise le contexte/variables/constantes nécéssaire à l'affichage d'un rendu OpenGL. 

\hypertarget{class_game_engine_a5bc791a8c6bf38a896cd3c355ec1a401}{
\index{GameEngine@{GameEngine}!InitOrthoProjection@{InitOrthoProjection}}
\index{InitOrthoProjection@{InitOrthoProjection}!GameEngine@{GameEngine}}
\subsubsection[{InitOrthoProjection}]{\setlength{\rightskip}{0pt plus 5cm}void GameEngine::InitOrthoProjection (
\begin{DoxyParamCaption}
\item[{float}]{aLowerBoundx, }
\item[{float}]{aUpperBoundx, }
\item[{float}]{aLowerBoundy, }
\item[{float}]{aUpperBoundy}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_game_engine_a5bc791a8c6bf38a896cd3c355ec1a401}


Initialise la matrice de projection de manière \char`\"{}ortho\char`\"{}. 

\hypertarget{class_game_engine_afbc98615f913da8e6e945bd87c31d249}{
\index{GameEngine@{GameEngine}!InitSDL@{InitSDL}}
\index{InitSDL@{InitSDL}!GameEngine@{GameEngine}}
\subsubsection[{InitSDL}]{\setlength{\rightskip}{0pt plus 5cm}void GameEngine::InitSDL (
\begin{DoxyParamCaption}
\item[{int}]{width, }
\item[{int}]{height}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_game_engine_afbc98615f913da8e6e945bd87c31d249}


Initialise la fenêtre de jeu, crée à l'aide de la librairie SDL. 

\hypertarget{class_game_engine_ae4d697f8b2e229ab73edff282c4b1198}{
\index{GameEngine@{GameEngine}!InputEventManagement@{InputEventManagement}}
\index{InputEventManagement@{InputEventManagement}!GameEngine@{GameEngine}}
\subsubsection[{InputEventManagement}]{\setlength{\rightskip}{0pt plus 5cm}void GameEngine::InputEventManagement (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{class_game_engine_ae4d697f8b2e229ab73edff282c4b1198}


\subsection{Member Data Documentation}
\hypertarget{class_game_engine_a7fba9b3842cdcbd5be04244f29e7b024}{
\index{GameEngine@{GameEngine}!collisions@{collisions}}
\index{collisions@{collisions}!GameEngine@{GameEngine}}
\subsubsection[{collisions}]{\setlength{\rightskip}{0pt plus 5cm}std::vector$<${\bf Collision} $\ast$ $>$ {\bf GameEngine::collisions}}}
\label{class_game_engine_a7fba9b3842cdcbd5be04244f29e7b024}
Détection de collisions entre surfaces englobantes \hypertarget{class_game_engine_a5668d61bd6ba126944fef59982c8d597}{
\index{GameEngine@{GameEngine}!currentTime@{currentTime}}
\index{currentTime@{currentTime}!GameEngine@{GameEngine}}
\subsubsection[{currentTime}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf GameEngine::currentTime}}}
\label{class_game_engine_a5668d61bd6ba126944fef59982c8d597}
Valeur temporelle actuelle \hypertarget{class_game_engine_a032695d38f9a6634619f06cb790d7a3f}{
\index{GameEngine@{GameEngine}!delegates@{delegates}}
\index{delegates@{delegates}!GameEngine@{GameEngine}}
\subsubsection[{delegates}]{\setlength{\rightskip}{0pt plus 5cm}std::vector$<${\bf AbstractDelegate} $\ast$$>$ {\bf GameEngine::delegates}}}
\label{class_game_engine_a032695d38f9a6634619f06cb790d7a3f}
Evénements lié au jeu ou à la fenêtre \hypertarget{class_game_engine_a60431c445134f75d704ef4003b6c7671}{
\index{GameEngine@{GameEngine}!dimension@{dimension}}
\index{dimension@{dimension}!GameEngine@{GameEngine}}
\subsubsection[{dimension}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf GameEngine::dimension}}}
\label{class_game_engine_a60431c445134f75d704ef4003b6c7671}
Détermine si l'application est en 2D ou 3D \hypertarget{class_game_engine_af5253da3697460963d047996bd2cd7c1}{
\index{GameEngine@{GameEngine}!elements@{elements}}
\index{elements@{elements}!GameEngine@{GameEngine}}
\subsubsection[{elements}]{\setlength{\rightskip}{0pt plus 5cm}std::vector$<${\bf Displayable} $\ast$$>$ {\bf GameEngine::elements}}}
\label{class_game_engine_af5253da3697460963d047996bd2cd7c1}
Liste des éléments affichable de la scène \hypertarget{class_game_engine_aed94b14c0f594f84194afb23924416f2}{
\index{GameEngine@{GameEngine}!event@{event}}
\index{event@{event}!GameEngine@{GameEngine}}
\subsubsection[{event}]{\setlength{\rightskip}{0pt plus 5cm}SDL\_\-Event {\bf GameEngine::event}}}
\label{class_game_engine_aed94b14c0f594f84194afb23924416f2}
Objet récupérant l'événement en cours renvoyer par la méthode SDL\_\-PollEvent \hypertarget{class_game_engine_a9058cb5e9eaeb3ed9ae68dd69d46eac0}{
\index{GameEngine@{GameEngine}!frameCount@{frameCount}}
\index{frameCount@{frameCount}!GameEngine@{GameEngine}}
\subsubsection[{frameCount}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf GameEngine::frameCount}}}
\label{class_game_engine_a9058cb5e9eaeb3ed9ae68dd69d46eac0}
Nombre de rafraichissement de l'image éffectué depuis le début \hypertarget{class_game_engine_ab4d971b71c71276764d0abf8cd1d0057}{
\index{GameEngine@{GameEngine}!frameRate@{frameRate}}
\index{frameRate@{frameRate}!GameEngine@{GameEngine}}
\subsubsection[{frameRate}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf GameEngine::frameRate}}}
\label{class_game_engine_ab4d971b71c71276764d0abf8cd1d0057}
Nombre d'image par seconde souhaité \hypertarget{class_game_engine_a080ea426e418df4a88202a3690962b52}{
\index{GameEngine@{GameEngine}!lastTime@{lastTime}}
\index{lastTime@{lastTime}!GameEngine@{GameEngine}}
\subsubsection[{lastTime}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf GameEngine::lastTime}}}
\label{class_game_engine_a080ea426e418df4a88202a3690962b52}
Valeur temporelle du dernier rafraichissement de l'image \hypertarget{class_game_engine_af1ec035087a590d689965249e8b02982}{
\index{GameEngine@{GameEngine}!lowerBoundGLx@{lowerBoundGLx}}
\index{lowerBoundGLx@{lowerBoundGLx}!GameEngine@{GameEngine}}
\subsubsection[{lowerBoundGLx}]{\setlength{\rightskip}{0pt plus 5cm}float {\bf GameEngine::lowerBoundGLx}}}
\label{class_game_engine_af1ec035087a590d689965249e8b02982}
Borne inférieur du repère openGL en x \hypertarget{class_game_engine_ad8e113d07fdfba699038d42908adc43e}{
\index{GameEngine@{GameEngine}!lowerBoundGLy@{lowerBoundGLy}}
\index{lowerBoundGLy@{lowerBoundGLy}!GameEngine@{GameEngine}}
\subsubsection[{lowerBoundGLy}]{\setlength{\rightskip}{0pt plus 5cm}float {\bf GameEngine::lowerBoundGLy}}}
\label{class_game_engine_ad8e113d07fdfba699038d42908adc43e}
Borne inférieur du repère openGL en y \hypertarget{class_game_engine_a786d9d8af1f12e73d65223e1ea0197a6}{
\index{GameEngine@{GameEngine}!pow@{pow}}
\index{pow@{pow}!GameEngine@{GameEngine}}
\subsubsection[{pow}]{\setlength{\rightskip}{0pt plus 5cm}{\bf PointOfView} {\bf GameEngine::pow}}}
\label{class_game_engine_a786d9d8af1f12e73d65223e1ea0197a6}
Classe utilisé pour représenter une caméra dans l'espace 3D \hypertarget{class_game_engine_ace9e14db48c1fa236bdaa9c456dfa732}{
\index{GameEngine@{GameEngine}!upperBoundGLx@{upperBoundGLx}}
\index{upperBoundGLx@{upperBoundGLx}!GameEngine@{GameEngine}}
\subsubsection[{upperBoundGLx}]{\setlength{\rightskip}{0pt plus 5cm}float {\bf GameEngine::upperBoundGLx}}}
\label{class_game_engine_ace9e14db48c1fa236bdaa9c456dfa732}
Borne supérieur du repère openGL en x \hypertarget{class_game_engine_a0f616a1a00c82a91f4f0fa60240de825}{
\index{GameEngine@{GameEngine}!upperBoundGLy@{upperBoundGLy}}
\index{upperBoundGLy@{upperBoundGLy}!GameEngine@{GameEngine}}
\subsubsection[{upperBoundGLy}]{\setlength{\rightskip}{0pt plus 5cm}float {\bf GameEngine::upperBoundGLy}}}
\label{class_game_engine_a0f616a1a00c82a91f4f0fa60240de825}
Borne supérieur du repère openGL en y \hypertarget{class_game_engine_a289c62b96098e493218c18b639aaff2c}{
\index{GameEngine@{GameEngine}!windowHeight@{windowHeight}}
\index{windowHeight@{windowHeight}!GameEngine@{GameEngine}}
\subsubsection[{windowHeight}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf GameEngine::windowHeight}}}
\label{class_game_engine_a289c62b96098e493218c18b639aaff2c}
Hauteur/Largeur de la fenêtre SDL \hypertarget{class_game_engine_a0f2b958058bbc9dcbfbe7bc19d8201b5}{
\index{GameEngine@{GameEngine}!windowWidth@{windowWidth}}
\index{windowWidth@{windowWidth}!GameEngine@{GameEngine}}
\subsubsection[{windowWidth}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf GameEngine::windowWidth}}}
\label{class_game_engine_a0f2b958058bbc9dcbfbe7bc19d8201b5}
Longueur de la fenêtre SDL 

The documentation for this class was generated from the following files:\begin{DoxyCompactItemize}
\item 
sources/tool/\hyperlink{game_engine_8h}{gameEngine.h}\item 
sources/tool/\hyperlink{game_engine_8cpp}{gameEngine.cpp}\end{DoxyCompactItemize}
